package com.avetti.commerce.domainmodel;

import java.io.Serializable;
import java.util.Date;
import java.util.List;
import java.util.Set;

import com.avetti.commerce.inventory.domainmodel.InventoryHistory;
import com.avetti.commerce.questions.domain.OrderQuestion;
import com.avetti.commerce.store.adddatainput.domainmodel.OrderItemDataInput;

public class OrderItem implements Serializable {
    
      
    /**
     * 
     */
    private static final long serialVersionUID = -4929065757002005766L;

    public static final String VENDORID = "vid";
    public static final String CREATETIME = "createtime";
    public static final String ITEMCODE = "itemcode";
    public static final String ORDERITEMID = "orderitemid";

    private Long orderitemid;

    private String vid;

    private long orderdataid;

    /**
     * quantity of items
     */
    private long qty;
    
    private int orderitemstate;
    
    private Date createtime;
    
    private Date updatetime;
    
    private Date shiptime;
    
    private String itemcode;
    
    private String compositecode;
    
    private String title;
    
    private String shipvia;
    
    private long shipid;
    
    private double shipcost;
    
    private double taxcost;
    
    private double shipdiscount;
    
    private double orderdiscount;
    
    private double itemdiscount;
    
    private double itemcost;
    
    private double paytot;
    
    private double shippedtot;
    
    private double refundtot;
    
    private String courierno="";
    
    private int sequence;
    
    private long shipto;
    
    private int psequence;
    
    private String comment;
    
    private Set<Orderitemattribs> orderitemattribs;
    
    private OrderAddress shippingAddress;
    
    private double shiptax; 
    
    private double taxrate;
   
    
    /**
     * transient variable
     */
    private List<Integer> actions;
    
    private Set<OrderItemDataInput> orderItemDataInputList;
    
    private int action;
    
    private double refund=0;
    
    private double shipped=0;
      
    private long actionQty = 0;
    
    private double actionAmt = 0;
    
    private String courierNoCopy;
    
    private String shiptype = "";
    
    private InventoryHistory inventoryHistory;
    
    /**
     * national tax
     */
    private double taxGST= 0.0;
    private double taxrateGST= 0.0;
    private String taxGSTName;
    
    /**
     * provincial tax
     */
    private double taxPST= 0.0;
    private double taxratePST= 0.0;
    private String taxPSTName;
    
    /**
     * another type of national tax valid in some provinces
     */
    private double taxHST= 0.0;
    private double taxrateHST= 0.0;
    private String taxHSTName;
    
    private double countytax = 0.0;
    private double countytaxrate =0.0;
    private String countytaxname;
    
    private double placetax = 0.0;
    private double placetaxrate = 0.0;
    private String placetaxname;
    
    private double othertax1 = 0.0;
    private double othertaxrate1 = 0.0;
    private String othertax1name;
    
    private double othertax2 = 0.0;
    private double othertaxrate2 = 0.0;
    private String othertax2name;
    private boolean showButton=false;
    private String shipzone="";
    private Set<OrderQuestion> questions;
    private String barCodeFile;
    
    private Set<Orderitemprops> orderitemprops;
    
    public Set<OrderQuestion> getQuestions() {
        return questions;
    }

    public void setQuestions(Set<OrderQuestion> questions) {
        this.questions = questions;
    }

    public String getShiptype() {
        return shiptype;
    }

    public void setShiptype(String shiptype) {
        this.shiptype = shiptype;
    }

    public Long keyId() {
        return this.orderitemid;
    }

    public double getActionAmt() {
        return actionAmt;
    }

    public void setActionAmt(double actionAmt) {
        this.actionAmt = actionAmt;
    }

    public double getShiptax() {
        return shiptax;
    }

    public void setShiptax(double shiptax) {
        this.shiptax = shiptax;
    }

    public double getTaxrate() {
        return taxrate;
    }

    public void setTaxrate(double taxrate) {
        this.taxrate = taxrate;
    }

    public long getActionQty() {
        return actionQty;
    }

    public void setActionQty(long actionQty) {
        this.actionQty = actionQty;
    }
    
    public double getRefund() {
        return refund;
    }

    public void setRefund(double refund) {
        this.refund = refund;
    }

    public int getAction() {
        return action;
    }

    public void setAction(int action) {
        this.action = action;
    }

    public List<Integer> getActions() {
        return actions;
    }

    public void setActions(List<Integer> actions) {
        this.actions = actions;
    }

    public Date getCreatetime() {
        return createtime;
    }

    public void setCreatetime(Date createtime) {
        this.createtime = createtime;
    }

    public long getOrderdataid() {
        return orderdataid;
    }

    public void setOrderdataid(long orderdataid) {
        this.orderdataid = orderdataid;
    }

    public Long getOrderitemid() {
        return orderitemid;
    }

    public void setOrderitemid(Long orderitemid) {
        this.orderitemid = orderitemid;
    }

    public int getOrderitemstate() {
        return orderitemstate;
    }

    public void setOrderitemstate(int orderitemstate) {
        this.orderitemstate = orderitemstate;
    }

    public long getQty() {
        return qty;
    }

    public void setQty(long qty) {
        this.qty = qty;
    }

    public Date getUpdatetime() {
        return updatetime;
    }

    public void setUpdatetime(Date updatetime) {
        this.updatetime = updatetime;
    }

    public String getVid() {
        return vid;
    }

    public void setVid(String vid) {
        this.vid = vid;
    }

    public Date getShiptime() {
        return shiptime;
    }

    public void setShiptime(Date shiptime) {
        this.shiptime = shiptime;
    }


    public String getItemcode() {
        return itemcode;
    }

    public void setItemcode(String itemcode) {
        this.itemcode = itemcode;
    }

    public String getCompositecode() {
        return compositecode;
    }

    public void setCompositecode(String compositecode) {
        this.compositecode = compositecode;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public double getItemdiscount() {
        return itemdiscount;
    }

    public void setItemdiscount(double itemdiscount) {
        this.itemdiscount = itemdiscount;
    }

    public double getOrderdiscount() {
        return orderdiscount;
    }

    public void setOrderdiscount(double orderdiscount) {
        this.orderdiscount = orderdiscount;
    }

    public double getShipdiscount() {
        return shipdiscount;
    }

    public void setShipdiscount(double shipdiscount) {
        this.shipdiscount = shipdiscount;
    }

    public double getItemcost() {
        return itemcost;
    }

    public void setItemcost(double itemcost) {
        this.itemcost = itemcost;
    }

    public double getShipcost() {
        return shipcost;
    }

    public void setShipcost(double shipcost) {
        this.shipcost = shipcost;
    }

    public double getTaxcost() {
        return taxcost;
    }

    public void setTaxcost(double taxcost) {
        this.taxcost = taxcost;
    }

    public String getShipvia() {
        return shipvia;
    }

    public void setShipvia(String shipvia) {
        this.shipvia = shipvia;
    }

    public long getShipid() {
        return shipid;
    }

    public void setShipid(long shipid) {
        this.shipid = shipid;
    }

    public double getPaytot() {
        return paytot;
    }

    public void setPaytot(double paytot) {
        this.paytot = paytot;
    }

    public double getRefundtot() {
        return refundtot;
    }

    public void setRefundtot(double refundtot) {
        this.refundtot = refundtot;
    }

    public double getShippedtot() {
        return shippedtot;
    }

    public void setShippedtot(double shippedtot) {
        this.shippedtot = shippedtot;
    }

    public double getShipped() {
        return shipped;
    }

    public void setShipped(double shipped) {
        this.shipped = shipped;
    }
    public int getSequence() {
        return sequence;
    }

    public void setSequence(int sequence) {
        this.sequence = sequence;
    }

    public long getShipto() {
        return shipto;
    }

    public void setShipto(long shipto) {
        this.shipto = shipto;
    }

    public OrderAddress getShippingAddress() {
        return shippingAddress;
    }

    public void setShippingAddress(OrderAddress shippingAddress) {
        this.shippingAddress = shippingAddress;
    }

    public int getPsequence() {
        return psequence;
    }

    public void setPsequence(int psequence) {
        this.psequence = psequence;
    }

    public Set<Orderitemattribs> getOrderitemattribs() {
        return orderitemattribs;
    }

    public void setOrderitemattribs(Set<Orderitemattribs> orderitemattribs) {
        this.orderitemattribs = orderitemattribs;
    }

    public String getCourierno() {
        return courierno;
    }

    public void setCourierno(String courierno) {
        this.courierno = courierno;
    }

    public String getCourierNoCopy() {
        return courierNoCopy;
    }

    public void setCourierNoCopy(String courierNoCopy) {
        this.courierNoCopy = courierNoCopy;
    }

    public String getComment() {
        return comment;
    }

    public void setComment(String comment) {
        this.comment = comment;
    }

    /**
     * @return the orderItemDataInputList
     */
    public Set<OrderItemDataInput> getOrderItemDataInputList() {
        return orderItemDataInputList;
    }

    /**
     * @param orderItemDataInputList the orderItemDataInputList to set
     */
    public void setOrderItemDataInputList(
            Set<OrderItemDataInput> orderItemDataInputList) {
        this.orderItemDataInputList = orderItemDataInputList;
    }

    public InventoryHistory getInventoryHistory()
    {
        return inventoryHistory;
    }

    public void setInventoryHistory(InventoryHistory inventoryHistory)
    {
        this.inventoryHistory = inventoryHistory;
    }

    public double getTaxPST() {
        return taxPST;
    }

    public void setTaxPST(double taxPST) {
        this.taxPST = taxPST;
    }

    public double getTaxGST() {
        return taxGST;
    }

    public void setTaxGST(double taxGST) {
        this.taxGST = taxGST;
    }

    public double getTaxHST() {
        return taxHST;
    }

    public void setTaxHST(double taxHST) {
        this.taxHST = taxHST;
    }

    public double getTaxrateGST() {
        return taxrateGST;
    }

    public void setTaxrateGST(double taxrateGST) {
        this.taxrateGST = taxrateGST;
    }

    public double getTaxratePST() {
        return taxratePST;
    }

    public void setTaxratePST(double taxratePST) {
        this.taxratePST = taxratePST;
    }

    public double getTaxrateHST() {
        return taxrateHST;
    }

    public void setTaxrateHST(double taxrateHST) {
        this.taxrateHST = taxrateHST;
    }

    /**
     * @return the taxGSTName
     */
    public String getTaxGSTName() {
        return taxGSTName;
    }

    /**
     * @param taxGSTName the taxGSTName to set
     */
    public void setTaxGSTName(String taxGSTName) {
        this.taxGSTName = taxGSTName;
    }

    /**
     * @return the taxPSTName
     */
    public String getTaxPSTName() {
        return taxPSTName;
    }

    /**
     * @param taxPSTName the taxPSTName to set
     */
    public void setTaxPSTName(String taxPSTName) {
        this.taxPSTName = taxPSTName;
    }

    /**
     * @return the taxHSTName
     */
    public String getTaxHSTName() {
        return taxHSTName;
    }

    /**
     * @param taxHSTName the taxHSTName to set
     */
    public void setTaxHSTName(String taxHSTName) {
        this.taxHSTName = taxHSTName;
    }

    /**
     * @return the othertax1
     */
    public double getOthertax1() {
        return othertax1;
    }

    /**
     * @param othertax1 the othertax1 to set
     */
    public void setOthertax1(double othertax1) {
        this.othertax1 = othertax1;
    }

    /**
     * @return the othertax2
     */
    public double getOthertax2() {
        return othertax2;
    }

    /**
     * @param othertax2 the othertax2 to set
     */
    public void setOthertax2(double othertax2) {
        this.othertax2 = othertax2;
    }

    /**
     * @return the othertaxrate2
     */
    public double getOthertaxrate2() {
        return othertaxrate2;
    }

    /**
     * @param othertaxrate2 the othertaxrate2 to set
     */
    public void setOthertaxrate2(double othertaxrate2) {
        this.othertaxrate2 = othertaxrate2;
    }

    /**
     * @return the countytax
     */
    public double getCountytax() {
        return countytax;
    }

    /**
     * @param countytax the countytax to set
     */
    public void setCountytax(double countytax) {
        this.countytax = countytax;
    }

    /**
     * @return the countytaxrate
     */
    public double getCountytaxrate() {
        return countytaxrate;
    }

    /**
     * @param countytaxrate the countytaxrate to set
     */
    public void setCountytaxrate(double countytaxrate) {
        this.countytaxrate = countytaxrate;
    }

    /**
     * @return the countytaxname
     */
    public String getCountytaxname() {
        return countytaxname;
    }

    /**
     * @param countytaxname the countytaxname to set
     */
    public void setCountytaxname(String countytaxname) {
        this.countytaxname = countytaxname;
    }

    /**
     * @return the placetax
     */
    public double getPlacetax() {
        return placetax;
    }

    /**
     * @param placetax the placetax to set
     */
    public void setPlacetax(double placetax) {
        this.placetax = placetax;
    }

    /**
     * @return the placetaxrate
     */
    public double getPlacetaxrate() {
        return placetaxrate;
    }

    /**
     * @param placetaxrate the placetaxrate to set
     */
    public void setPlacetaxrate(double placetaxrate) {
        this.placetaxrate = placetaxrate;
    }

    /**
     * @return the placetaxname
     */
    public String getPlacetaxname() {
        return placetaxname;
    }

    /**
     * @param placetaxname the placetaxname to set
     */
    public void setPlacetaxname(String placetaxname) {
        this.placetaxname = placetaxname;
    }

    /**
     * @return the othertaxrate1
     */
    public double getOthertaxrate1() {
        return othertaxrate1;
    }

    /**
     * @param othertaxrate1 the othertaxrate1 to set
     */
    public void setOthertaxrate1(double othertaxrate1) {
        this.othertaxrate1 = othertaxrate1;
    }

    /**
     * @return the othertax1name
     */
    public String getOthertax1name() {
        return othertax1name;
    }

    /**
     * @param othertax1name the othertax1name to set
     */
    public void setOthertax1name(String othertax1name) {
        this.othertax1name = othertax1name;
    }

    /**
     * @return the othertax2name
     */
    public String getOthertax2name() {
        return othertax2name;
    }

    /**
     * @param othertax2name the othertax2name to set
     */
    public void setOthertax2name(String othertax2name) {
        this.othertax2name = othertax2name;
    }

    /**
     * @return the showButton
     */
    public boolean isShowButton() {
        return showButton;
    }

    /**
     * @param showButton the showButton to set
     */
    public void setShowButton(boolean showButton) {
        this.showButton = showButton;
    }

    /**
     * @return the shipzone
     */
    public String getShipzone() {
        return shipzone;
    }

    /**
     * @param shipzone the shipzone to set
     */
    public void setShipzone(String shipzone) {
        this.shipzone = shipzone;
    }

    public String getBarCodeFile() {
        return barCodeFile;
    }

    public void setBarCodeFile(String barCodeFile) {
        this.barCodeFile = barCodeFile;
    }

    public Set<Orderitemprops> getOrderitemprops() {
        return orderitemprops;
    }

    public void setOrderitemprops(Set<Orderitemprops> orderitemprops) {
        this.orderitemprops = orderitemprops;
    }


    
    
}
